#ifndef OPENGLNODE_H
#define	OPENGLNODE_H

#define STDOUTPUT 1

#include <GL/gl.h>
#include <GL/glu.h>
#include <GL/glut.h>
#include <iostream>
#include <string>
#include <ros/ros.h>
#include <boost/math/special_functions/fpclassify.hpp> // isnan
//#include <ros/console.h>
#include <vector>
#include <BonzoSurvivors/Beams.h>
#include <limits>
#include "DMDebug.h"

typedef struct
{
    float x;
    float y;
    float z;
}Point;

typedef struct
{
    Point center;
    float radius;
}Sphere;

class OpenGLNode {
public:
  OpenGLNode();
  OpenGLNode(const OpenGLNode& orig);
  virtual ~OpenGLNode();
  bool checkAndCollect();
  BonzoSurvivors::Beams getBeams() const {return beams_;};
private:
  ros::NodeHandle nh_;
  ros::Subscriber openglSub;
  BonzoSurvivors::Beams beams_;
  void NewControllerMsg(const BonzoSurvivors::Beams& contrMsg);
};

#endif	/* OPENGLNODE_H */

